import os
import cv2


def load_images_from_folder(folder):
    """
    从文件夹中加载所有图像，并转换为灰度图像。

    :param folder: 图像文件夹路径。
    :return: 图像列表。
    """
    images = []
    filenames = sorted(os.listdir(folder))  # 对文件名进行排序
    for filename in filenames:
        img_path = os.path.join(folder, filename)
        img = cv2.imread(img_path, cv2.IMREAD_COLOR)
        if img is not None:
            images.append(img)
    return images


def load_dataset(base_folder):
    """
    加载数据集，包括参考图像和模板图像，并转换为灰度图像。

    :param base_folder: 数据集的基本文件夹路径。
    :return: 参考图像和模板图像的列表。
    """
    ref_folder = os.path.join(base_folder, 'processed', 'reference')
    temp_folder = os.path.join(base_folder, 'processed', 'template')

    ref_images = load_images_from_folder(ref_folder)
    temp_images = load_images_from_folder(temp_folder)

    return ref_images, temp_images
